
#include <iostream>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>

int main()
{
    
    //打开源文件
    int infd=open("abc",O_RDONLY);
    if(infd==-1)
    {
        perror("open-read");
        return 1;
    }
    //打开fifo "mk"用于写入
    int outfd=open("mk",O_WRONLY);
    if(outfd==-1)
    {
        perror("open-write");
        return 1;
    }
    char buffer[1024];
    int n=0;
    while((n=read(infd,buffer,sizeof(buffer)))>0)
    {
        write(outfd,buffer,n);
    }
    close(infd);
    close(outfd);
    std::cout << "Writer: Finished sending data." << std::endl;
    return 0;
}























// int main() {
//     // 1. 打开源文件，比如 "abc"
//     int infd = open("abc", O_RDONLY);
//     if (infd == -1) {
//         perror("open source file (abc)");
//         return 1;
//     }

//     // 2. 打开 FIFO "mk" 用于写入
//     int outfd = open("mk", O_WRONLY);
//     if (outfd == -1) {
//         perror("open FIFO (mk) for writing");
//         close(infd);
//         return 1;
//     }

//     char buffer[1024];
//     int n;

//     std::cout << "Writer: Sending data to FIFO..." << std::endl;

//     while ((n = read(infd, buffer, sizeof(buffer))) > 0) {
//         if (write(outfd, buffer, n) != n) {
//             perror("write to FIFO");
//             break;
//         }
//     }

//     if (n < 0) {
//         perror("read from source");
//     }

//     close(infd);
//     close(outfd);

//     std::cout << "Writer: Finished sending data." << std::endl;
//     return 0;
// }